/**
@description gorm文件

@copyright    Copyright 2022 高灯科技
@version      1.0.0
@link         https://www.goldentec.com
@author       venki.chen <venki.chen@goldentec.com>
@datetime     2022/2/9 10:16
*/

package main

import (
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type GormUsers struct {
	gorm.Model
	UserId string
	Name   string
	Phone  string
}

func main() {
	dsn := "root:1q2w3e4r5t@!@tcp(120.79.98.120:52014)/golang?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

	if err != nil {
		panic("连接数据库失败...")
	}

	// 迁移 schema 即创建数据表
	db.AutoMigrate(&GormUsers{})

	// Create
	// db.Create(&GormUsers{UserId: "1001", Name: "venki.chen", Phone: "15817280925"})

	var gormUsers GormUsers
	// Read
	//db.First(&gormUsers, 1) // 根据整形主键查找

	//db.First(&gormUsers, "user_id = ?", "1001") // 查找 user_id 字段值为 1001 的记录

	// Update - 将 gormUsers 的 name 更新为 poet.chao
	// db.Model(&gormUsers).Update("name", "venki.chen")

	// Update - 更新多个字段
	db.Model(&gormUsers).Where("user_id", "1002").Updates(map[string]interface{}{"Name": "", "UserId": "1002"}) // 仅更新非零值字段
	// db.Model(&gormUsers).Updates(map[string]interface{}{"Name": "陈占全", "UserId": "1003"})

	// Delete - 删除 gormUsers
	// db.Delete(&gormUsers, 1)
}
